home *** CD-ROM | disk | FTP | other *** search
/ Team Palmtops 7 / Palmtops_numero07.iso / WinCE / SDKWindowsCE / HandHeldPCPro30 / sdk.exe / Jupiter SDK / data1.cab / ATL / include / wcedisp.h < prev   
Encoding:
C/C++ Source or Header  |  1999-02-19  |  5.1 KB  |  168 lines

  1. // This is a part of the Active Template Library(Windows CE).
  2. // Copyright (C) 1996-1998 Microsoft Corporation
  3. // All rights reserved.
  4. //
  5. // This source code is only intended as a supplement to the
  6. // Active Template Library Reference and related
  7. // electronic documentation provided with the library.
  8. // See these sources for detailed information regarding the
  9. // Active Template Library product.
  10.  
  11. #ifndef _WCEDISP_H_
  12. #define _WCEDISP_H_
  13.  
  14. /////////////////////////////////////////////////////////////////////////////
  15. // Platform specific defines
  16.  
  17. #ifdef _X86_
  18. #define _STACK_INT      int
  19. #define _STACK_LONG     long
  20. #define _STACK_FLOAT    float
  21. #define _STACK_DOUBLE   double
  22. #define _STACK_PTR      void*
  23. #define _SCRATCH_SIZE   16
  24. #define _STACK_OFFSET   0
  25. #define _STACK_MIN      0
  26. #endif
  27.  
  28. #ifdef _MIPS_
  29. #define _ALIGN_DOUBLES  8
  30. #define _STACK_INT      int
  31. #define _STACK_LONG     long
  32. #define _STACK_FLOAT    float
  33. #define _STACK_DOUBLE   double
  34. #define _STACK_PTR      void*
  35. #define _SCRATCH_SIZE   0
  36. #define _STACK_OFFSET   0
  37. #define _STACK_MIN      32      // 4 32-bit registers
  38. #endif
  39.  
  40. #ifdef _ALPHA_
  41. #define _ALIGN_STACK    8
  42. #define _STACK_INT      __int64
  43. #define _STACK_LONG     __int64
  44. #define _STACK_FLOAT    double
  45. #define _STACK_DOUBLE   double
  46. #define _STACK_PTR      __int64
  47. #define _SCRATCH_SIZE   0
  48. #define _STACK_OFFSET   48
  49. #define _STACK_MIN      (48+32) // 6 32-bit registers, 32 bytes param space
  50. #endif
  51.  
  52. #ifdef _PPC_
  53. #define _ALIGN_DOUBLES  8
  54. #define _STACK_INT      int
  55. #define _STACK_LONG     long
  56. #define _STACK_FLOAT    float
  57. #define _STACK_DOUBLE   double
  58. #define _STACK_PTR      void*
  59. #define _SHADOW_DOUBLES 13
  60. #define _SCRATCH_SIZE   (_SHADOW_DOUBLES*sizeof(double))
  61. #define _STACK_OFFSET   0
  62. #define _STACK_MIN      (64+32) // 8 32-bit registers, 32 bytes param space
  63. #define _RETVAL_FIRST
  64. #endif
  65.  
  66. #ifdef x86
  67. #define _STACK_INT      int
  68. #define _STACK_LONG     long
  69. #define _STACK_FLOAT    float
  70. #define _STACK_DOUBLE   double
  71. #define _STACK_PTR      void*
  72. #define _SCRATCH_SIZE   16
  73. #define _STACK_OFFSET   0
  74. #define _STACK_MIN      0
  75. #endif
  76.  
  77. #if defined(SHx)
  78. #define _ALIGN_DOUBLES  8
  79. #define _STACK_INT      int
  80. #define _STACK_LONG     long
  81. #define _STACK_FLOAT    float
  82. #define _STACK_DOUBLE   double
  83. #define _STACK_PTR      void*
  84. #define _SCRATCH_SIZE   0
  85. #define _STACK_OFFSET   0
  86. #define _STACK_MIN      32      // 4 32-bit registers
  87. #define _RETVAL_FIRST
  88. #endif
  89.  
  90. #if defined(_ARM_)
  91. #define _ALIGN_DOUBLES  4
  92. #define _STACK_INT      int
  93. #define _STACK_LONG     long
  94. #define _STACK_FLOAT    float
  95. #define _STACK_DOUBLE   double
  96. #define _STACK_PTR      void*
  97. #define _SCRATCH_SIZE   0
  98. #define _STACK_OFFSET   0
  99. #define _STACK_MIN      32      // 4 32-bit registers
  100. //#define _RETVAL_FIRST
  101. #endif
  102.  
  103.  
  104. #define VT_MFCVALUE         0xFFF       // special value for DISPID_VALUE
  105. #define VT_MFCBYREF         0x40        // indicates VT_BYREF type
  106. #define VT_MFCMARKER        0xFF        // delimits named parameters (INTERNAL USE)
  107.  
  108. extern "C" DWORD __stdcall _AtlCEDispatchCall(DWORD pfn, void* pArgs, UINT nSizeArgs);
  109.  
  110. static const UINT _afxByValue[] =
  111. {
  112.     0,                          // VTS_EMPTY
  113.     0,                          // VTS_NULL
  114.     sizeof(_STACK_INT),         // VTS_I2
  115.     sizeof(_STACK_LONG),        // VTS_I4
  116.     sizeof(_STACK_FLOAT),       // VTS_R4
  117.     sizeof(_STACK_DOUBLE),      // VTS_R8
  118.     sizeof(CY),                 // VTS_CY
  119.     sizeof(DATE),               // VTS_DATE
  120.     sizeof(LPCOLESTR),          // VTS_WBSTR (VT_BSTR)
  121.     sizeof(LPDISPATCH),         // VTS_DISPATCH
  122.     sizeof(SCODE),              // VTS_SCODE
  123.     sizeof(BOOL),               // VTS_BOOL
  124.     sizeof(const VARIANT*),     // VTS_VARIANT
  125.     sizeof(LPUNKNOWN),           // VTS_UNKNOWN
  126. };
  127.  
  128. // size of arguments on stack when pushed by reference
  129. static const UINT _afxByRef[] =
  130. {
  131.     0,                          // VTS_PEMPTY
  132.     0,                          // VTS_PNULL
  133.     sizeof(short*),             // VTS_PI2
  134.     sizeof(long*),              // VTS_PI4
  135.     sizeof(float*),             // VTS_PR4
  136.     sizeof(double*),            // VTS_PR8
  137.     sizeof(CY*),                // VTS_PCY
  138.     sizeof(DATE*),              // VTS_PDATE
  139.     sizeof(BSTR*),              // VTS_PBSTR
  140.     sizeof(LPDISPATCH*),        // VTS_PDISPATCH
  141.     sizeof(SCODE*),             // VTS_PSCODE
  142.     sizeof(VARIANT_BOOL*),      // VTS_PBOOL
  143.     sizeof(VARIANT*),           // VTS_PVARIANT
  144.     sizeof(LPUNKNOWN*),         // VTS_PUNKNOWN
  145.     sizeof(BYTE*),              // VTS_PUI1
  146. };
  147.  
  148. static const UINT _afxRetVal[] =
  149. {
  150.     0,                          // VT_EMPTY
  151.     0,                          // VT_NULL
  152.     0,                          // VT_I2
  153.     0,                          // VT_I4
  154.     0,                          // VT_R4
  155.     0,                          // VT_R8
  156.     sizeof(CY*),                // VT_CY
  157.     0,                          // VT_DATE (same as VT_R8)
  158.     0,                          // VT_BSTR
  159.     0,                          // VT_DISPATCH
  160.     0,                          // VT_ERROR
  161.     0,                          // VT_BOOL
  162.     sizeof(VARIANT*),           // VT_VARIANT
  163.     0,                          // VT_UNKNOWN
  164.     0,                          // VT_UI1
  165. };
  166.  
  167. #endif // _WCEDISP_H_
  168.